The present invention relates to network communications and more particularly, to storing frame information in a network switch prior to processing by a decision making engine.
In computer networks, a plurality of network stations are interconnected via a communications medium. For example, Ethernet is a commonly used local area network scheme in which multiple stations are connected to a single shared serial data path. These stations often communicate with a switch located between the shared data path and the stations connected to that path. Typically, the switch controls the communication of data packets on the network.
The network switch includes switching logic for receiving and forwarding frames to the appropriate destinations. One arrangement for generating a frame forwarding decision uses a direct addressing scheme, where the network switch includes a fixed address table storing switching logic for the destination addresses.
For example, a frame may be received by the network switch with header information indicating the source address and destination address of the frame. The switching logic accesses the fixed address table using the source address and destination address as lookups to find the appropriate frame forwarding information. The switch then uses this information and sends the frame to the appropriate port(s).
When all of the stations connected to the network are simultaneously operating, packet traffic on the shared serial path can be heavy with little time between packets. Accordingly, many prior art systems transmit the data frame to an external memory for storage prior to processing. However, the data frame must then be transmitted back to the switch for processing by a decision making device. This is a time-consuming process that decreases the speed with which the data is transmitted to its destination. With increased network throughput requirements, such a processing arrangement often results in an unacceptable delay in forwarding frames to their respective destinations.
Another drawback with typical prior art systems that employ external memory devices to store data frames is that each data port is coupled to a separate internal bus that is then coupled to the external memory interface. The large number of internal buses increases the chip size and creates contention problems associated with transferring the data to the external memory.
There exists a need for a switching device that enables data to be transferred to an external memory, while permitting a portion of the data to be stored on the switching device for processing by a decision making device.
There is also a need for a switching device that enables a portion of a data frame to be stored on the switching device in an efficient manner.
These and other needs are met by the present invention, where a multiport switch uses an external memory to store data frames. As the data frames are transmitted to the external memory, a portion of the data frame is stored on the multiport switch for processing by a decision making engine. The decision making engine generates frame forwarding information while the frame is stored in the external memory. The data frame is then transmitted back to the switch for transmission through the appropriate port(s) on the switch.
According to one aspect of the invention, a multiport switch is configured to control the communication of data frames between stations. The switch includes a receive device configured to receive a data frame and transmit the data frame on an internal bus to an external memory interface. The switch also includes a decision making engine configured detect when data frame information is being transmitted on the internal bus and to store a portion of the data frame on the multiport switch, when the decision making engine detects data frame information is being transmitted on the internal bus.
Another aspect of the present invention provides a method for storing data frame information in a multiport switch that controls communication of data frames between stations. The method includes receiving a data frame and transmitting the data frame on an internal bus to an external memory interface. The method also includes detecting when data frame information is being transmitted on the internal bus. The method further includes storing a portion of the data frame on the multiport switch, when transmission of data frame information on the internal bus is detected.
Other advantages and features of the present invention will become readily apparent to those skilled in this art from the following detailed description. The embodiments shown and described provide illustration of the best mode contemplated for carrying out the invention. The invention is capable of modifications in various obvious respects, all without departing from the invention. Accordingly, the drawings are to be regarded as illustrative in nature, and not as restrictive.